package com.waijiaojun.tpo.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.Calendar;
import java.util.Date;

public class GoodsOrder {

    public GoodsOrder() {
    }

    private Long id; //
    private Date createDate; // 创建时间
    private Date updateDate; // 最后更新时间
    private Integer deleted; // 是否删除（0：删，1：用）
    private Long weixinPublicId; // 微信公众号id

    private Long orderStatus; // 订单状态(1.代付款，2.待发货，3.待收货，4.待评价)
    private Long money; // 订单金额，单位分
    private String orderCode; // 订单编号
    private String openid; //

    private Long payMoney; // 支付金额，单位分
    private String payCode; // 支付编号
    private Long payStatus; // 支付状态: 0：未支付；1：支付成功；2：支付失败

    private String ip;

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public Long getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Long payStatus) {
        this.payStatus = payStatus;
    }


    /**
     * 支付编号
     *
     * @return
     */
    public String getPayCode() {
        return payCode;
    }

    /**
     * 支付编号
     *
     * @param payCode
     */
    public void setPayCode(String payCode) {
        this.payCode = payCode;
    }

    /**
     *
     **/
    public Long getId() {
        return id;
    }

    /**
     *
     **/
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 创建时间
     **/
    public Date getCreateDate() {
        return createDate;
    }

    /**
     * 创建时间
     **/
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    /**
     * 最后更新时间
     **/
    public Date getUpdateDate() {
        return updateDate;
    }

    /**
     * 最后更新时间
     **/
    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    /**
     * 是否删除（0：删，1：用）
     **/
    public Integer getDeleted() {
        return deleted;
    }

    /**
     * 是否删除（0：删，1：用）
     **/
    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    /**
     * 微信公众号id
     **/
    public Long getWeixinPublicId() {
        return weixinPublicId;
    }

    /**
     * 微信公众号id
     **/
    public void setWeixinPublicId(Long weixinPublicId) {
        this.weixinPublicId = weixinPublicId;
    }

    /**
     * 订单状态(1.代付款，2.待发货，3.待收货，4.待评价)
     **/
    public Long getOrderStatus() {
        return orderStatus;
    }

    /**
     * 订单状态(1.代付款，2.待发货，3.待收货，4.待评价)
     **/
    public void setOrderStatus(Long orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Long getMoney() {
        return money;
    }

    public void setMoney(Long money) {
        this.money = money;
    }

    public Long getPayMoney() {
        return payMoney;
    }

    public void setPayMoney(Long payMoney) {
        this.payMoney = payMoney;
    }

    /**
     * 订单编号
     **/
    public String getOrderCode() {
        return orderCode;
    }

    /**
     * 订单编号
     **/
    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    /**
     *
     **/
    public String getOpenid() {
        return openid;
    }

    /**
     *
     **/
    public void setOpenid(String openid) {
        this.openid = openid;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this);
    }

    /**
     * 交易结束时间 订单创建时间+30天 注意：如果没有对应的Setter方法，则在前端ajax方法直接返回对象的时候会报500错误，因此需要用@JsonIgnore
     *
     * @return
     */
    @JsonIgnore
    public Date getExpireDate() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(this.getCreateDate());
        cal.add(Calendar.DAY_OF_MONTH, 30);
        return cal.getTime();
    }

}